Legrand / Raritan Xerus™ JSON-RPC API for Remote Access Devices like KX4-101, KX3G2
Loading...
Searching...
No Matches
KvmPort.idl
1#ifndef __RADM_KVM_PORT_IDL__
2#define __RADM_KVM_PORT_IDL__
3
4#include <UserEvent.idl>
5#include <AccessPort.idl>
6#include <UsbProfileSettings.idl>
7#include <VideoResolution.idl>
8
9module radm {
10
11 interface KvmPort extends AccessPort {
12 constant int ERR_USB_RECONFIG_NOT_ALLOWED_BUSY = 20;
13
14 enumeration PortType {
15 KVM,
16 BLADEPORT,
17 BLADECHASSIS,
18 TIERDEVICE
19 };
20
21 structure Capabilities {
22 PortType type; ///< Port type of this port
23 boolean absoluteMouse; ///< Absolute mouse mode can be used on this port
24 boolean virtualMedia; ///< Virtual media / mass storage can be used on this port
25 boolean usbSettings; ///< The port supports using the 'usb' part of {@link Settings}.
26 boolean usbProfiles; ///< The port supports setting active and selected USB profiles in {@link Settings}.
27 boolean digitalVideo; ///< The port has a digital video input
28 boolean ddc; ///< The port supports EDID communication towards the target and thus supports setting preferred resolution in {@link Settings}.
29 boolean audio; ///< The port has audio support
30 boolean smartCard; ///< The port has smart card support
31 boolean dviCompatMode; ///< The port has an HDMI video input and thus supports setting DVI compat mode in {@link Settings}.
32 boolean cim; ///< CIMs can be attached to this port
33 boolean blade; ///< The port has support for blade server configuration
34 };
35
36 /** USB settings for devices without usbProfiles capability */
37 structure UsbSettings {
38 UsbProfileSettings profile; ///< USB settings handled by profiles on devices with usbProfiles capability, see {@link UsbProfileSettings}
39 boolean overrideVendor; ///< Whether to override the default (Raritan) USB vendor and product ID with that of a locally attached device
40 boolean usbAudio; ///< Whether to enable USB audio
41 };
42
43 enumeration EdidSource {
44 STANDARD, ///< Use built-in EDID data
45 CUSTOM, ///< Use custom EDID data previously uploaded
46 LOCAL ///< Use EDID data of a locally attached monitor
47 };
48
49 enumeration CimNamingMode {
50 CIM_TO_PORT, ///< Transfer CIM name to port name
51 PORT_TO_CIM_ONCE, ///< Transfer port name to CIM name on next connection
52 PORT_TO_CIM_ALWAYS ///< Transfer port name to CIM name on every connection
53 };
54
55 /** Information about group membership of this port */
56 valueobject GroupInfo {
57 string groupId; ///< ID of the group containing this port
58 int positionInGroup; ///< Position inside the group (index into group member list)
59 };
60
61 /** Information about group membership in case this port is part of a multi-monitor group */
62 valueobject MultiMonitorGroupInfo extends GroupInfo {
63 boolean isPrimary; ///< This port is considered the primary monitor of the group
64 int horizontalPosition; ///< Horizontal position inside the monitor grid formed by the group
65 int verticalPosition; ///< Vertical position inside the monitor grid formed by the group
66 };
67
68 /** Information about a CIM connected to a port */
69 valueobject CimInfo {
70 string cimName; ///< Name as configured in the CIM
71 string serialNumber; ///< CIM serial number
72 string cimType; ///< CIM model
73 string fwVersion; ///< Firmware version
74 string hwVersion; ///< Hardware version
75 };
76
78 boolean manualSync; ///< If true, manually entered values are used for mouse curve; if false, mouse curve is auto detected
79 float manualAcceleration; ///< Mouse cursor movement amount (in pixels) per mouse unit
80 int manualThreshold; ///< Mouse movement threshold (in pixels) for applying acceleration
81 int accumulationPeriod; ///< Period (in ms) over which to accumulate incoming mouse movements until sending them to the target (0 = no accumulation)
82 };
83
84 /** Settings for digital (non-CIM) ports */
86 int edidCycleTime; ///< Cycle time for hot-plug detect signal on EDID changes (in ms, available for ddc capability)
87 boolean vgaMode; ///< Whether to treat the the video input as originating from an analog video source -
88 ///< if enabled, noise filters and color range conversion are used
89 int vgaGainBoost; ///< How aggressively color range conversion should be done in VGA mode on a 0..9 scale
90 boolean audioCompensation; ///< Whether to compensate for issues in HDMI audio connection
91 };
92
93 /** Settings for CIM-based ports */
94 structure CimPortSettings {
95 boolean dosResolutionCompensation; ///< Whether to compensate for issues with 640x480 or 720x400 video resolutions
96 boolean offsetCompensation; ///< Whether to compensate for non-centered video output
97 CimNamingMode namingMode; ///< Name transfer behavior when connecting a CIM to this port
98 };
99
100 structure Settings {
101 string name; ///< Port name
102 VideoResolution preferredResolution; ///< Preferred video resolution for this port (available for ddc capability)
103 EdidSource preferredResolutionSource; ///< Source of EDID data for preferred resolution (available for ddc capability)
104 boolean dviCompatMode; ///< Use DVI instead of HDMI EDID data (available for dviCompatMode capability)
105 boolean videoPortrait; ///< Whether to interpret the video signal in landscape or portrait orientation
106 boolean videoThrottle; ///< Cap client frame rate at half of incoming video frame rate
107 DigitalPortSettings digital; ///< Digital port settings (not available for cim capabilitty)
108 CimPortSettings cim; ///< CIM-based port settings (available for cim capability)
109 IntelligentMouseSettings mouse; ///< Settings for intelligent mouse mode
110 UsbSettings usb; ///< USB settings (available for usbSettings capability)
111 vector<int> selectedProfiles; ///< IDs of USB profiles to be available for this port (available for usbProfiles capability)
112 int activeProfile; ///< ID of active USB profile (available for usbProfiles capability)
113 int preferredProfile; ///< ID of preferred USB profile (available for usbProfiles capability)
114 };
115
116 /**
117 * Get port capabilities
118 *
119 * @return Port capabilities
120 */
122
123 /**
124 * Get port settings
125 *
126 * @return Port settings
127 */
129
130 /**
131 * Set port settings
132 *
133 * @param settings New settings
134 *
135 * @return 0 on success
136 * @return 1 if any setting was invalid
137 * @return 20 if USB settings could not be changed due to the port currently being in use
138 */
139 int setSettings(in Settings settings);
140
141 /**
142 * Get information about port group membership
143 *
144 * @return Group information object in case this port is part of a group
145 */
147
148 /**
149 * Get information about a CIM connected to the port
150 *
151 * @return CIM information object in case a CIM is connected to the port
152 */
154
155 /** Event: The port capabilities have changed */
156 valueobject CapabilitiesChangedEvent extends idl.Event {
157 Capabilities oldCapabilities; ///< Capabilities before change
158 Capabilities newCapabilities; ///< Capabilities after change
159 };
160
161 /** Event: The port settings have changed */
162 valueobject SettingsChangedEvent extends event.UserEvent {
163 Settings oldSettings; ///< Port settings before change
164 Settings newSettings; ///< Port settings after change
165 };
166
167 /** Event: The port group has changed */
168 valueobject GroupInfoChangedEvent extends event.UserEvent {
169 GroupInfo oldGroupInfo; ///< Group information before change
170 GroupInfo newGroupInfo; ///< Group information after change
171 };
172
173 /** Event: The port ciminfo have changed */
174 valueobject CimInfoChangedEvent extends idl.Event {
175 CimInfo oldCimInfo; ///< CIM information before change
176 CimInfo newCimInfo; ///< CIM information after change
177 };
178
179 /** Event: Active USB profile has changed */
181 string profileName; ///< Profile name
182 long profileKey; ///< Profile key
183 };
184
185 };
186
187}
188
189#endif //__RADM_KVM_PORT_IDL__
@ CUSTOM
Use custom EDID data previously uploaded.
Definition KvmPort.idl:45
@ LOCAL
Use EDID data of a locally attached monitor.
Definition KvmPort.idl:46
@ STANDARD
Use built-in EDID data.
Definition KvmPort.idl:44
CimInfo getCimInfo()
Get information about a CIM connected to the port.
@ PORT_TO_CIM_ALWAYS
Transfer port name to CIM name on every connection.
Definition KvmPort.idl:52
@ CIM_TO_PORT
Transfer CIM name to port name.
Definition KvmPort.idl:50
@ PORT_TO_CIM_ONCE
Transfer port name to CIM name on next connection.
Definition KvmPort.idl:51
int setSettings(in Settings settings)
Set port settings.
GroupInfo getGroupInfo()
Get information about port group membership.
Capabilities getCapabilities()
Get port capabilities.
Settings getSettings()
Get port settings.
Basic IDL definitions.
Definition Event.idl:10
Radm Model.
Definition AccessPort.idl:8
USB Ports.
Definition Usb.idl:11
Common base for all events.
Definition Event.idl:13
Event: Active USB profile has changed.
Definition KvmPort.idl:180
Event: The port capabilities have changed.
Definition KvmPort.idl:156
Capabilities newCapabilities
Capabilities after change.
Definition KvmPort.idl:158
Capabilities oldCapabilities
Capabilities before change.
Definition KvmPort.idl:157
boolean virtualMedia
Virtual media / mass storage can be used on this port.
Definition KvmPort.idl:24
boolean usbProfiles
The port supports setting active and selected USB profiles in Settings.
Definition KvmPort.idl:26
boolean ddc
The port supports EDID communication towards the target and thus supports setting preferred resolutio...
Definition KvmPort.idl:28
boolean cim
CIMs can be attached to this port.
Definition KvmPort.idl:32
PortType type
Port type of this port.
Definition KvmPort.idl:22
boolean absoluteMouse
Absolute mouse mode can be used on this port.
Definition KvmPort.idl:23
boolean digitalVideo
The port has a digital video input.
Definition KvmPort.idl:27
boolean smartCard
The port has smart card support.
Definition KvmPort.idl:30
boolean audio
The port has audio support.
Definition KvmPort.idl:29
boolean usbSettings
The port supports using the 'usb' part of Settings.
Definition KvmPort.idl:25
boolean dviCompatMode
The port has an HDMI video input and thus supports setting DVI compat mode in Settings.
Definition KvmPort.idl:31
boolean blade
The port has support for blade server configuration.
Definition KvmPort.idl:33
Event: The port ciminfo have changed.
Definition KvmPort.idl:174
CimInfo oldCimInfo
CIM information before change.
Definition KvmPort.idl:175
CimInfo newCimInfo
CIM information after change.
Definition KvmPort.idl:176
Information about a CIM connected to a port.
Definition KvmPort.idl:69
string cimName
Name as configured in the CIM.
Definition KvmPort.idl:70
string serialNumber
CIM serial number.
Definition KvmPort.idl:71
string cimType
CIM model.
Definition KvmPort.idl:72
string hwVersion
Hardware version.
Definition KvmPort.idl:74
string fwVersion
Firmware version.
Definition KvmPort.idl:73
Settings for CIM-based ports.
Definition KvmPort.idl:94
CimNamingMode namingMode
Name transfer behavior when connecting a CIM to this port.
Definition KvmPort.idl:97
boolean offsetCompensation
Whether to compensate for non-centered video output.
Definition KvmPort.idl:96
boolean dosResolutionCompensation
Whether to compensate for issues with 640x480 or 720x400 video resolutions.
Definition KvmPort.idl:95
Settings for digital (non-CIM) ports.
Definition KvmPort.idl:85
int vgaGainBoost
How aggressively color range conversion should be done in VGA mode on a 0..9 scale.
Definition KvmPort.idl:89
boolean audioCompensation
Whether to compensate for issues in HDMI audio connection.
Definition KvmPort.idl:90
int edidCycleTime
Cycle time for hot-plug detect signal on EDID changes (in ms, available for ddc capability)
Definition KvmPort.idl:86
boolean vgaMode
Whether to treat the the video input as originating from an analog video source - if enabled,...
Definition KvmPort.idl:87
Event: The port group has changed.
Definition KvmPort.idl:168
GroupInfo oldGroupInfo
Group information before change.
Definition KvmPort.idl:169
GroupInfo newGroupInfo
Group information after change.
Definition KvmPort.idl:170
Information about group membership of this port.
Definition KvmPort.idl:56
string groupId
ID of the group containing this port.
Definition KvmPort.idl:57
int positionInGroup
Position inside the group (index into group member list)
Definition KvmPort.idl:58
int manualThreshold
Mouse movement threshold (in pixels) for applying acceleration.
Definition KvmPort.idl:80
float manualAcceleration
Mouse cursor movement amount (in pixels) per mouse unit.
Definition KvmPort.idl:79
boolean manualSync
If true, manually entered values are used for mouse curve; if false, mouse curve is auto detected.
Definition KvmPort.idl:78
int accumulationPeriod
Period (in ms) over which to accumulate incoming mouse movements until sending them to the target (0 ...
Definition KvmPort.idl:81
Information about group membership in case this port is part of a multi-monitor group.
Definition KvmPort.idl:62
int horizontalPosition
Horizontal position inside the monitor grid formed by the group.
Definition KvmPort.idl:64
int verticalPosition
Vertical position inside the monitor grid formed by the group.
Definition KvmPort.idl:65
boolean isPrimary
This port is considered the primary monitor of the group.
Definition KvmPort.idl:63
Event: The port settings have changed.
Definition KvmPort.idl:162
Settings oldSettings
Port settings before change.
Definition KvmPort.idl:163
Settings newSettings
Port settings after change.
Definition KvmPort.idl:164
boolean videoThrottle
Cap client frame rate at half of incoming video frame rate.
Definition KvmPort.idl:106
boolean videoPortrait
Whether to interpret the video signal in landscape or portrait orientation.
Definition KvmPort.idl:105
vector< int > selectedProfiles
IDs of USB profiles to be available for this port (available for usbProfiles capability)
Definition KvmPort.idl:111
string name
Port name.
Definition KvmPort.idl:101
IntelligentMouseSettings mouse
Settings for intelligent mouse mode.
Definition KvmPort.idl:109
int preferredProfile
ID of preferred USB profile (available for usbProfiles capability)
Definition KvmPort.idl:113
boolean dviCompatMode
Use DVI instead of HDMI EDID data (available for dviCompatMode capability)
Definition KvmPort.idl:104
DigitalPortSettings digital
Digital port settings (not available for cim capabilitty)
Definition KvmPort.idl:107
int activeProfile
ID of active USB profile (available for usbProfiles capability)
Definition KvmPort.idl:112
CimPortSettings cim
CIM-based port settings (available for cim capability)
Definition KvmPort.idl:108
VideoResolution preferredResolution
Preferred video resolution for this port (available for ddc capability)
Definition KvmPort.idl:102
EdidSource preferredResolutionSource
Source of EDID data for preferred resolution (available for ddc capability)
Definition KvmPort.idl:103
USB settings for devices without usbProfiles capability.
Definition KvmPort.idl:37
boolean overrideVendor
Whether to override the default (Raritan) USB vendor and product ID with that of a locally attached d...
Definition KvmPort.idl:39
boolean usbAudio
Whether to enable USB audio.
Definition KvmPort.idl:40
UsbProfileSettings profile
USB settings handled by profiles on devices with usbProfiles capability, see UsbProfileSettings.
Definition KvmPort.idl:38